﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Шифр "Сэндвич".  Дан текст. Осуществить шифрование и дешифрование следующим образом: текст разбивается на две одинаковых по количеству символов части и результатом шифрования является строка, в которой символы из первой части чередуются символами из второй части.


                string str = "abc1234";


                string coded = code(str);
                string decoded = decode(coded);

                    Console.WriteLine("Incoming string:  " + str);        
                    Console.WriteLine("Coded message:  "+coded);
                    Console.WriteLine("Decoded message:  "+decoded);
                    Console.WriteLine();      
           
        }

        
        static string code(string str) //кодирую строку
        {
            int i = str.Length;
            string lastChar = str.Substring(i - 1);
            int lengthSub1 = i / 2;
            int remainder = i % 2;
            string result = ""; 
            if (remainder>0)
                {
                    
                    string str1 = str.Substring(0, i-1);
                   
                }

                string sub1 = str.Substring(0, lengthSub1);
                string sub2 = str.Substring(lengthSub1, lengthSub1);

             
               for (int j = 0; j < lengthSub1; j++)
                {

                    result = result + sub1[j] + sub2[j];
                        
                }

                     result = result + lastChar;        
                     return result;
        }

            static string decode(string str)  //декодирую строку
            {
                string beginWord = "";
                string endWord = "";

                string lastChar=str.Substring(str.Length-1);

                for (int i=0; i<str.Length-1; i=i+2)
                {
                    string a = str.Substring(i,1);
                    beginWord = beginWord+a;
                }
                for (int i = 1; i < str.Length - 1; i = i + 2)
                {
                    string b = str.Substring(i,1);
                    endWord = endWord + b;
                }
                string decoded = beginWord + endWord + lastChar;
                return decoded;
            }
            
        }
    }
